// 测试代码
function runTests() {
    const ticketOrder = new TicketOrder();
    
    // 1. 测试登录函数
    console.log("=== 测试登录函数 ===");
    // 测试用例1: 空用户名和密码
    console.log(ticketOrder.login("", ""));
    // 测试用例2: 用户不存在
    console.log(ticketOrder.login("nonexistent", "password"));
    // 测试用例3: 密码错误
    console.log(ticketOrder.login("user1", "wrongpassword"));
    // 测试用例4: 登录成功
    console.log(ticketOrder.login("user1", "password1"));
    
    // 2. 测试查询票函数
    console.log("\n=== 测试查询票函数 ===");
    // 测试用例5: 最快路线
    console.log(ticketOrder.queryTickets({
      startStation: '北京',
      endStation: '上海',
      date: '2023-05-15',
      queryType: 'fastest'
    }));
    // 测试用例6: 最便宜路线
    console.log(ticketOrder.queryTickets({
      startStation: '北京',
      endStation: '上海',
      date: '2023-05-15',
      queryType: 'cheapest'
    }));
    // 测试用例7: 最早出发
    console.log(ticketOrder.queryTickets({
      startStation: '北京',
      endStation: '上海',
      date: '2023-05-15',
      queryType: 'earliest'
    }));
    // 测试用例8: 最晚出发
    console.log(ticketOrder.queryTickets({
      startStation: '北京',
      endStation: '上海',
      date: '2023-05-15',
      queryType: 'latest'
    }));
    // 测试用例9: 默认排序
    console.log(ticketOrder.queryTickets({
      startStation: '北京',
      endStation: '上海',
      date: '2023-05-15',
      queryType: 'unknown'
    }));
    
    // 3. 测试票价计算函数
    console.log("\n=== 测试票价计算函数 ===");
    const basePrice = 100;
    
    // 测试用例10: 学生票
    console.log(`学生票价: ${ticketOrder.calculateTicketPrice(basePrice, { type: '学生' })}`);
    
    // 测试用例11: 残疾人票
    console.log(`残疾人票价: ${ticketOrder.calculateTicketPrice(basePrice, { type: '残疾人' })}`);
    
    // 测试用例12: 身高<120cm儿童
    console.log(`身高<120cm儿童票价: ${ticketOrder.calculateTicketPrice(basePrice, { type: '儿童', height: 110 })}`);
    
    // 测试用例13: 身高>=120cm儿童
    console.log(`身高>=120cm儿童票价: ${ticketOrder.calculateTicketPrice(basePrice, { type: '儿童', height: 130 })}`);
    
    // 测试用例14: 老人票
    console.log(`老人票价: ${ticketOrder.calculateTicketPrice(basePrice, { type: '老人' })}`);
    
    // 测试用例15: 普通乘客
    console.log(`普通乘客票价: ${ticketOrder.calculateTicketPrice(basePrice, { type: '普通' })}`);
    
    // 4. 测试订单创建和历史记录功能
    console.log("\n=== 测试订单创建和历史记录 ===");
    
    // 创建订单
    const orderResult = ticketOrder.createOrder(
      {
        id: 1,
        trainNumber: 'G101',
        startStation: '北京',
        endStation: '上海',
        departureTime: '08:00',
        price: 553
      },
      {
        name: '张三',
        identityType: '学生',
        height: null
      }
    );
    
    console.log(orderResult);
    
    // 保存订单到历史记录
    if (orderResult.success) {
      OrderDataTransfer.saveOrderToHistory(orderResult.order);
      console.log("历史订单列表:", OrderDataTransfer.getOrderHistory());
    }
  }
  
  // 运行测试
  runTests();